// final_review_gate.js
import readline from "readline";

// 创建 readline 接口
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: true,
});

// 结束当前步骤审查的关键字
const englishExitKeywords = [
  "task_complete",
  "continue",
  "next",
  "end",
  "complete",
  "endtask",
  "continue_task",
  "end_task",
];
const chineseExitKeywords = ["没问题", "继续", "下一步", "完成", "结束任务", "结束"];

// 检测是否为退出关键字
function isExitKeyword(input) {
  const inputLower = input.toLowerCase();
  if (englishExitKeywords.includes(inputLower)) return true;
  if (chineseExitKeywords.includes(input)) return true;
  return false;
}

// 主要处理函数
function processInput(input) {
  const trimmedInput = input.trim();
  if (isExitKeyword(trimmedInput)) {
    console.log(`--- REVIEW GATE: 用户通过 '${trimmedInput}' 结束了对【本步骤】的审查 ---`);
    rl.close();
    return;
  }
  if (trimmedInput) {
    console.log(`USER_REVIEW_SUB_PROMPT: ${trimmedInput}`); // AI需要监听此格式
  }
  rl.prompt();
}

// 设置提示符并开始交互
console.log(
  "Review Gate: 当前步骤已完成。请输入您对【本步骤】的指令 (或输入关键字如 '完成', 'next' 来结束对本步骤的审查):",
);

// 监听用户输入
rl.on("line", processInput);

// 监听 SIGINT (Ctrl+C)
rl.on("SIGINT", () => {
  console.log("\n--- REVIEW GATE: 用户通过Ctrl+C中断了【本步骤】的审查 ---");
  rl.close();
});

// 监听关闭事件
rl.on("close", () => {
  process.exit(0);
});

// 监听错误
rl.on("error", (err) => {
  console.log(`--- REVIEW GATE 【本步骤】脚本错误: ${err.message} ---`);
  rl.close();
});

// 开始等待输入
rl.prompt();
